[4주차] 변승현 /[feat] 추가 API 구현#150
Hidden character warning
Conversation
Hanharam
left a comment
There was a problem hiding this comment.
👍 전체적인 흐름과 서비스에서 메서드 책임 분리가 좋았습니다! 나중에 Spring Security를 적용하게 되면 userId는 클라이언트가 보내는 Request DTO에서 직접 받지 말고 보안을 위해 서버의 로그인 정보(토큰/세션 등)에서 바로 꺼내 쓰는 방식으로 수정하면 완벽할 것 같습니다!
N-yujeong
left a comment
There was a problem hiding this comment.
👍 전체적으로 과제 요구사항을 잘 반영하여 구현하신 것 같습니다.
중복 채택 방지와 신고 처리 applyResolution 메서드까지 잘 반영하신 거 같습니다!
jihoonkim501
left a comment
There was a problem hiding this comment.
승현님 수고 많으셨습니다~! 신고, 채택에 대한 고민의 흔적이 많이 보이고 코드에서 의도된 것들 또한 잘 확인되는 것 같습니다~! 제가 남긴 코멘트만 확인해주시면 감사하겠습니다~!
| @PostMapping("/api/posts/{postId}/comments") | ||
| public ResponseEntity<ApiResponse<CommentCreateResponse>> createComment( | ||
| @PathVariable Long postId, | ||
| @Valid @RequestBody CommentCreateRequest request | ||
| ) { | ||
| return ResponseEntity.status(HttpStatus.CREATED) | ||
| .body(ApiResponse.success( | ||
| "COMMENT_CREATE_SUCCESS", | ||
| "댓글 생성 성공", | ||
| commentService.createComment(postId, request) | ||
| )); | ||
| } | ||
|
|
||
| @PostMapping("/api/comments/{commentId}/adoption") |
There was a problem hiding this comment.
댓글 생성은 /api/posts/{postId}/comments처럼 “게시글의 하위 리소스인 댓글” 구조로 잘 잡혀 있는데, 댓글 채택 API는 /api/comments/{commentId}/adoption이라 리소스 기준이 달라 보여요.
댓글 채택도 특정 게시글 안의 특정 댓글에 대한 행동이므로, API 경로를 게시글 기준으로 맞추면 더 일관성 있어 보입니다.
만약 채택상태를 변경한다는 의미를 살리면 Patch 로 하는것 도 좋아보입니다!
@PatchMapping("/api/posts/{postId}/comments/{commentId}/adoption")
| public record CommentAdoptRequest( | ||
| @NotNull(message = "userId는 필수입니다.") | ||
| Long userId |
There was a problem hiding this comment.
필드값이 하나라면 (지금은) RequestParam으로 받는것도 방법이 될 수 있습니다!
참고로
추후에 인증/인가 주차에서 @AuthenticationPrincipal 또는 userdetail 을 이용하여 유저인증정보를 갖고 구성하면 좋을 것 같습니다!
1. 과제 요구사항 중 구현한 내용
구현한 기능
2. 핵심 변경 사항
Post,Comment,Report도메인에 상태값을 추가했습니다.ACTIVE,HIDDENACTIVE,HIDDEN,ADOPTEDPENDING,RESOLVED3. 실행 및 검증 결과
PENDING -> RESOLVED상태 변경 확인HIDDEN상태 변경 확인HIDDEN상태 변경 확인ADOPTED상태 변경 확인4. 완료 사항
게시물 / 댓글 / 신고 도메인 상태 기반 구조 설계
게시글 신고, 댓글 신고, 신고 처리, 댓글 채택 API 구현
중복 신고 방지 및 상태 전이 로직 반영
5. 추가 사항
closed #135제출 체크리스트
{이름}/main브랜치다{이름}/{숫자}주차브랜치다Reviewer 참고